package br.com.goldentrade.negocio.interfaces.impl;

import br.com.goldentrade.negocio.beans.ManejoRisco;
import br.com.goldentrade.negocio.interfaces.IManejoRisco;
import br.com.goldentrade.negocio.interfaces.impl.serviceLocator.ServiceLocator;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.persistence.EntityManager;
import javax.persistence.NoResultException;

public class ManejoRiscoImpl implements IManejoRisco{
    private EntityManager em;

    public void atualizar(ManejoRisco manetoRisco) {
       try {
            em = ServiceLocator.getEntityManager();
            em.getTransaction().begin();
            if(manetoRisco.getCdManejo() == null){
                em.persist(manetoRisco); 
            }else{
                em.merge(manetoRisco);
            }
            em.getTransaction().commit();
            ServiceLocator.leaveEntityManager(em);
            
        } catch (Exception e) {
            System.out.println(e.getStackTrace());
        }
    }

    public void remover(ManejoRisco manejoRisco) {
        try{
            em = ServiceLocator.getEntityManager();
            em.getTransaction().begin();
            em.remove(manejoRisco);
            em.getTransaction().commit();
            ServiceLocator.leaveEntityManager(em);
            
        } catch (Exception e) {
            System.out.println(e.getStackTrace());
        }
    }

    public ManejoRisco selecionar(int cd) {
        ManejoRisco mr = null;
        try {
            em = ServiceLocator.getEntityManager();
            mr = (ManejoRisco) em.createNamedQuery("ManejoRisco.findByCdManejo").setParameter("cdManejo", cd).getSingleResult();
            ServiceLocator.leaveEntityManager(em);
        } catch (NoResultException e) {
            System.out.println(e.getStackTrace());
        }
        return mr;
    }

    public List<ManejoRisco> selecionarTudo() {
       List<ManejoRisco> manejosRiscos = null;
        try {
            em = ServiceLocator.getEntityManager();
            manejosRiscos = em.createNamedQuery("ManejoRisco.findAll").getResultList();
            ServiceLocator.leaveEntityManager(em);
        } catch (Exception e) {
        }
        if(manejosRiscos != null){
            return manejosRiscos;
        }else{
            try {
                throw new Exception("Não possui dados");
            } catch (Exception ex) {
                Logger.getLogger(UsuarioImpl.class.getName()).log(Level.SEVERE, null, ex);
            }
        }
        return null;
    }
    
}
